package iPersistence.sqlSession;


import iPersistence.pojo.Configuration;
import iPersistence.pojo.MappedStatement;

import java.beans.IntrospectionException;
import java.lang.reflect.InvocationTargetException;
import java.sql.SQLException;
import java.util.List;

/**
 * @author Feuler
 * @since 2020/11/6
 **/

public interface Executor {

    /**
     * 执行查询语句
     *
     * @param configuration   数据库配置类
     * @param mappedStatement sql语句映射配置类
     * @param params          sql语句参数
     * @return 结果集
     */
    <E> List<E> query(Configuration configuration, MappedStatement mappedStatement, Object... params) throws SQLException, ClassNotFoundException, IllegalAccessException, NoSuchFieldException, InvocationTargetException, IntrospectionException, InstantiationException, NoSuchMethodException;
}
